/**
 * IPC 模块使用示例
 */

// 方式一：从总导出模块导入
import * as IPC from './ipcModules'

// 方式二：直接导入特定模块
import { appIPC, windowIPC, fileIPC, systemIPC } from './ipcModules'
import { send, invoke, on } from './ipc'

// 示例：使用方式一
async function exampleOne() {
  // 基础 IPC 功能
  IPC.send('ping')
  const version = await IPC.getAppVersion()
  console.log('应用版本:', version)
  
  // 应用相关功能
  const appInfo = await IPC.appIPC.getAppInfo()
  console.log('应用信息:', appInfo)
  
  // 窗口相关功能
  IPC.windowIPC.minimizeWindow()
  const windowState = await IPC.windowIPC.getWindowState()
  console.log('窗口状态:', windowState)
  
  // 文件相关功能
  const appDataPath = await IPC.fileIPC.getAppDataPath()
  console.log('应用数据目录:', appDataPath)
  
  // 系统相关功能
  const systemInfo = await IPC.systemIPC.getSystemInfo()
  console.log('系统信息:', systemInfo)
}

// 示例：使用方式二
async function exampleTwo() {
  // 基础 IPC 功能
  send('ping')
  
  // 应用相关功能
  await appIPC.openExternalLink('https://example.com')
  
  // 窗口相关功能
  windowIPC.centerWindow()
  
  // 文件相关功能
  const fileExists = await fileIPC.fileExists('/path/to/file')
  console.log('文件存在:', fileExists)
  
  // 系统相关功能
  const memoryUsage = await systemIPC.getMemoryUsage()
  console.log('内存使用情况:', memoryUsage)
}

// 示例：监听事件
function setupListeners() {
  // 监听应用就绪事件
  const removeListener = on('app-ready', () => {
    console.log('应用已就绪')
  })
  
  // 稍后移除监听器
  // removeListener()
}

// 导出示例函数
export {
  exampleOne,
  exampleTwo,
  setupListeners
} 